package common.parser;

/**
 * Contains a field that provides the number of operands for each instruction.
 * The bytes cb-ff should not appear in (static) bytecode. The value (byte) 0xff
 * represents a non-static value that cannot be used. Indices beyond the range
 * of this array and below 256 are unknown opcodes.
 */
public interface OperandLengths {
	

	public static byte[] operands = new byte[] {

	// 0x
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			// 1x
			1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
			// 2x
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			// 3x
			0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
			// 4x
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			// 5x
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			// 6x
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			// 7x
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			// 8x
			0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			// 9x
			0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2,
			// Ax
			2, 2, 2, 2, 2, 2, 2, 2, 2, 1, (byte) 0xff, (byte) 0xff, 0, 0, 0, 0,
			// Bx
			0, 0, 2, 2, 2, 2, 2, 2, 2, 4, 0, 2, 1, 2, 0, 0,
			// Cx
			2, 2, 0, 0, (byte) 0xff, 3, 2, 2, 4, 4 };
}
